package com.bz.match.utils;

import java.util.concurrent.ThreadLocalRandom;

/**
 * 雪花算法ID生成器，采用美团Leaf-snowflake方案。
 *
 * ID格式：0 - 00000000 00000000 00000000 00000000 00000000 0 - 00000000 00 - 00000000 0000
 *
 * 41-bit时间戳， 10-bit 机器ID， 12-bit序列号
 *
 * @author zhongyongbin
 * @since 2021/5/17
 */
public final class SnowFlakeIdGenerator {

    private static final SnowFlakeIdGenerator INSTANCE = new SnowFlakeIdGenerator();

    private SnowFlakeIdGenerator() {
    }

    /**
     * 生成 ID
     *
     * @return ID
     */
    public static long generateId() {
        // TODO 先用随机函数模拟
        return ThreadLocalRandom.current().nextLong(1, Long.MAX_VALUE);
    }
}
